package oop10;

import java.util.Scanner;

/**
 * @author oldliu
 * @since 1.0
 */
//租赁公司
public class CarRentalCompany {
    //名称和地址
    private String name;
    private String tele;
    //汽车数组，count表示当前的汽车数量
    private Vechile cars[]=new Vechile[20];
    private int count=0;

    private  RentalHistory[] history=new RentalHistory[100];
    private int historyCount=0;
    //private Scanner in=new Scanner(System.in);

    /**
     * 采购新车
     * @param v 新车
     */
    public void buy(Vechile v){
        cars[count++]=v;
    }
    /**
     * 报废旧车.
     * 车牌不存在，失败；
     * 车辆处于出租状态，失败；
     * @param license 车牌
     */
    public boolean scrap(String license){
        return false;
    }

    //辅助方法：
    //显示对应类型的车辆信息
    public void showType(String type){
        //instanceof 判断到底是Car还是Bus

    }

    /**
     * 租车，之前通过showType输出对应的车型信息;
     * 车牌不存在，处于出租状态，都失败；
     * @param licence 车牌
     * @param type   车型
     */
    public Vechile rent(String licence,String type,int days){
        Vechile vechile = find(licence);
        if(vechile==null){
            System.out.println("没有这辆车");
            return null;
        }
        if(vechile.isState()){
            System.out.println("此车已经租出去了");
            return null;
        }
        if(type.equals("轿车")&& !(vechile instanceof Car)){
            System.out.println("此车不是轿车");
            return null;
        }
        if(type.equals("客车")&& !(vechile instanceof Bus)){
            System.out.println("此车不是客车");
            return null;
        }
        vechile.setState(true);
        RentalHistory rh=new RentalHistory();
//        rh.setLicencePlate(vechile.getLicencePlate());
//        rh.setDays(days);
//        rh.setMoney(vechile.calcMoney(days));
        //加入数组
        //this.history[this.historyCount++]=rh;
        this.add(rh);//!!!!

        return vechile;//vechile.calMoney(days)
    }

    public void add(RentalHistory h){

    }
    /**
     * 还车；
     * 车牌不存在，车辆处于未出租状态。
     * @param licence
     */
    public boolean rtnCar(String licence){
        Vechile v=find(licence);
        if(v==null){
            //sout.没有这辆车
            return false;
        }
        if(v.isState()==false){
            //没有租出
            return false;
        }
        v.setState(false);
        //还成功
        return true;
    }

    /**
     *
     * @return 多少辆车可租
     */
    public int findNumsToRent(){
        int number=0;
        for (int i = 0; i < count; i++) {
            if (cars[i].isState()==false){
                number++;
            }
        }
        return number;
    }

    /**
     * 辅助方法：
     * 根据车牌号找到车辆
     * @param licence
     * @return
     */
    public Vechile find(String licence){
        return null;
    }

    //显示所有选项
    public void startMenu(){
        Scanner sc=new Scanner(System.in);
        while (true){

        }
    }
}
